#pragma once

#include <cstdio>

namespace infer {

/**
 * @brief 仿射变换的变换矩阵结构体
 *        输出的坐标变换到源输出图像,原输入图像可能被变换后送入模型推理
 */
struct AffineTransform {
  // TODO 仿射变换矩阵, 待定义数据结构, 待添加

  int dst_x_offset;
  int dst_y_offset;
  int src_w;
  int src_h;
  
  void updateMatrix(int src_w, int src_h, int dst_w, int dst_h);

  void applyTransform(float x, float y, float* out_x, float* out_y) const;
};

} // namespace infer